
from rest_framework.pagination import PageNumberPagination

# page_num 页容量,每页显示多少条数据,由前端传给后端的参数
# page 第几页,前端传给后端的参数
from rest_framework.response import Response


class CommonPagination(PageNumberPagination):
    page_size = 5  #每页显示记录数，前端没有传入page_num，则默认显示此参数
    page_size_query_param = 'page_num'  #前端传入每页显示的条数
    page_query_param = "page"  #前端传入要显示第几页
    max_page_size = 10  #后端控制每页显示最大记录数

     # 重写分页返回方法，按照指定的字段进行分页数据返回
    def get_paginated_response(self, data):
        return Response({
            'count': self.page.paginator.count,  # 总数量
            'results': data,  # 用户数据
            'page': self.page.number,  # 当前页数
            'pages': self.page.paginator.num_pages,  # 总页数
            'pagesize': self.page_size  # 后端指定的页容量
        })